/**
 * 自动刷新按钮 by minkey
 * 使用示例 :
 * var  o = new reflashBut(10,function(){$("#myForm").submit()});
 * o.setPosition(120 ,100);
 * o.initBut();
 * 
 * 可调用方法:
 * o.stop();
 * o.restart();
 * 
 * @param {Object} minTime 最小刷新时间
 * @param {Object} func 回调函数,
 */

function reflashBut(minTime,func){ 
	//刷新时间
	var timeNum = 5;
	//显示时间的span
	var showTimeSpan;
	//用于编辑div
	var inputDiv;
	//是否自动刷新
	var isReflash = true;
	var thisObj = this;
	//调度id
	var timeOutId = 0;
	
	var titleMsg = "双击激活/停止,修改请点击数字.";
	
	var random =  Math.round(Math.random()*10000);
	//初始化
	this.initBut = function(){
		//console.log("function initBut");
		
		timeNum = minTime;
		
		var divStr = "<div id='reflashDiv"+random+"' style='width:40px;height:40px;position:absolute;left:100px;top:100px' title='"+titleMsg+"'>" +
		"<img id='bgImg"+random+"' width='100%' height='100%' src='../images/reflashOn.gif' />"+
//		"<span style='position: absolute;top:35%;left:40%;color:bule' id='showTime'>"+timeNum+"</span>" +
		"</div>";
	
		var inPutDivStr ="<div style='display:none;position:absolute;' id='timeInputDiv"+random+"'>" +
//						"<input  type='text' value='"+timeNum+"' size='1'/>" +
						"</div>";
		
		$(document.body).append(divStr);
		$(document.body).append(inPutDivStr);
		$("#reflashNum").val(timeNum);
		
		$("#reflashDiv"+random).bind("dblclick",clickReflash);
		$("#reflashDiv"+random).find("span").bind("click",clickEdit);
//		$("#timeInputDiv"+random).find("input").bind("blur",submitInput);
		$("#refBtn").bind("click",clickReflash);
		$("#reflashNum").bind("blur",submitNum);
		
		timeOutId = setTimeout(reflashFunc,timeNum*1000);
		
		$("#reflashDiv"+random).draggable(); 
	};
	
	clickReflash = function (event){
		//console.log("function clickReflash");
		if(isReflash){
			thisObj.stop();
		}else{
			thisObj.restart();
		}
		return false;
	}
	
	clickEdit = function (event){
		//console.log("function clickEdit");
		$("#timeInputDiv"+random).find("input").val(timeNum);
		$("#timeInputDiv"+random).show(200);
		$("#timeInputDiv"+random).offset({ top: event.clientY-12, left: event.clientX-12 });
		$("#timeInputDiv"+random).find("input").select();
		return false;
	}
	
	submitInput = function(event){
		//console.log("function submitInput");
		if(isNaN($(this).val())){
			$("#timeInputDiv"+random).hide(200);
			return;
		}
		if($(this).val() <=　minTime){
			timeNum = minTime;
		}else if($(this).val() >= 99){
			timeNum = 99;
		}else{
			timeNum = $(this).val();
		}
		$("#reflashDiv"+random).find("span").html(timeNum);
		$("#timeInputDiv"+random).hide(200);
	}
	
	function submitNum (){
		
		var num =$("#reflashNum").val();
		if(isNaN(num)){
			alert("请输入1-99之间的数字");
			$("#reflashNum").val(timeNum);
			return;
		}else{
			if(num<1){
				timeNum = "1";
				$("#reflashNum").val("1");
			}else if(num>99){
				timeNum="99";
				$("#reflashNum").val("99");
			}else{
				timeNum=num;
			}
		}
		
	}
	
	reflashFunc = function (){
		if(!isReflash){
			return false;
		}
		
		try{
			//回调
		   	func();
		}catch(err){ 
			//console.log("callback function error!"+err);
		} 
		
		timeOutId = setTimeout(reflashFunc,timeNum*1000); 
	}
	this.stop = function(){
		clearTimeout(timeOutId); 
		isReflash = false;
		$("#reflashDiv"+random).find("img").attr("src","../images/reflashOff.gif");
		//
		// var ss= "${title.order.morStartBtn}";
		//var ss = "<s:text name='title.order.morStartBtn'/>";
		//alert(ss);
		$("#refBtn").val(ss);
		
	}
	this.hideAndStop = function(){
		this.stop();
		$("#reflashDiv"+random).hide();
	}
	
	this.restart = function(){
		isReflash = true;
		$("#reflashDiv"+random).find("img").attr("src","../images/reflashOn.gif");
		timeOutId = setTimeout(reflashFunc,timeNum*1000); 
		$("#reflashDiv"+random).show();
		$("#refBtn").val(ee);
	}
	
	this.setPosition = function(top,left){
		$("#reflashDiv"+random).offset({ top:top , left: left});
	}
	
	this.setTitle = function (msg){
		titleMsg = msg;
	}
	
}


